HJS

Solidity 스마트 컨트랙트 기본 정리

1️⃣ Solidity란?


1️⃣ 스마트 컨트랙트 구조

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract MyContract {
    uint public myValue;

    constructor() {
        myValue = 10;
    }

    function setValue(uint _val) public {
        myValue = _val;
    }

    function getValue() public view returns (uint) {
        return myValue;
    }
}

🔹 핵심 구성 요소

구성 요소설명
pragma사용 버전 지정 (^0.8.0 등)
contract컨트랙트 정의 블록
constructor()최초 배포 시 한 번 실행되는 함수
function외부에서 호출 가능한 함수들


2️⃣ 주요 타입 (Type)

타입설명
uint,int부호 없는 정수 / 정수 (기본 256bit)
booltrue/false
address지갑 주소 또는 컨트랙트 주소
string유니코드 문자열
bytes,byte32고정/가변 길이 바이트 배열
배열, 구조체, 매핑복합 데이터 타입 (아래 설명 참고)


3️⃣ 접근 제어가 (Visibility)

키워드설명
public외부/내부 모두 접근 가능
private오직 정의된 컨트랙트 내부에서만 접근 가능
internal상속받은 컨트랙트에서도 접근 가능
external외부에서만 호출 가능 (내부 호출 불가)
uint private secret;
function reveal() public view returns (uint) {
  return secret;
}